package com.itheima.d8_generics_method;

import java.util.ArrayList;

/*
    1 泛型方法
        修饰符 <类型变量，类型变量，…>  返回值类型 方法名(形参列表) { }
    2 通配符
        就是 “?” ，可以在“使用泛型”的时候代表一切类型；  E T K V 是在定义泛型的时候使用。
    3 泛型的上下限(受限泛型)
        泛型上限:   ? extends Car :   ?  能接收的必须是Car或者其子类 。
        泛型下限：  ?  super Car :   ?  能接收的必须是Car或者其父类。
 */
public class Test {
    public static void main(String[] args) {
        ArrayList<Car> cars = new ArrayList<>();
        ArrayList<BMW> bmws = new ArrayList<>();
        ArrayList<BMW2> bmw2s = new ArrayList<>();
        ArrayList<BMW3> bmw3s = new ArrayList<>();
        ArrayList<BENZ> benzs = new ArrayList<>();
        ArrayList<Dog> dogs = new ArrayList<>();

        run1(bmws);
        run1(cars);

    }

    public static void run1(ArrayList<? super BMW> car){

    }

}
class Car{

}
class BMW extends Car{

}
class BMW3 extends BMW{

}
class BMW2 extends BMW{

}
class Dog{

}
class BENZ extends Car{

}
